package com.smh.a02UDPDemo1;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class ReceiveMessageDemo1 {
    public static void main(String[] args) throws IOException {

        //接收数据
//1.创建Datagramsocket对象(快递公司)//细节:
//在接收的时候，一定要绑定端口
//面且绑定的端口一定要跟发送的端口保持一致
        DatagramSocket ds = new DatagramSocket(6666);

        //接收数据
        byte[] bytes = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
        //该方法是阻塞的
        //程序执行到这一步时,会死等
        //等发送端发送数据
        ds.receive(dp);

        //解析数据包
        byte[] data = dp.getData();
        int len = dp.getLength();
        InetAddress address = dp.getAddress();
        int port = dp.getPort();

        System.out.println("接收到的数据" + new String(data, 0, len));
        System.out.println("该数据是从" + address + "这台电脑中的" + port + "端口发送的");

        //释放资源
        ds.close();

    }
}
